
 <!DOCTYPE HTML>
<html >
<head>
  <meta charset="UTF-8">
  
    <title>卢家豪 - 区块链概论学习 | B3434lockchain</title>
    <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
    
    <meta name="author" content="b3434lockchain">
    

    
    <meta name="description" content="1.什么是区块链？区块链属于一种去中心化的记录技术。参与到该系统上的节点，可能属于不同组织，彼此无需信任。区块链数据由所有节点共同维护，每个参与维护的节点都能复制获得一份完整的记录的拷贝。 1.1.区块链的本质区块链的本质是特殊的分布式数据库。 区块链的主要作用是存储信息，任何需要保存的信息，都可以写入区块链，也可以从里面读取，所以它是数据库。在区块链中，任何人都可以架设服务器，加入区块链网络，成">
<meta name="keywords" content="周报,学习报告,卢家豪">
<meta property="og:type" content="article">
<meta property="og:title" content="卢家豪 - 区块链概论学习">
<meta property="og:url" content="http://b3434lockchain.gitee.io/2018/10/14/lujiahao/lujiahao2/index.html">
<meta property="og:site_name" content="B3434lockchain">
<meta property="og:description" content="1.什么是区块链？区块链属于一种去中心化的记录技术。参与到该系统上的节点，可能属于不同组织，彼此无需信任。区块链数据由所有节点共同维护，每个参与维护的节点都能复制获得一份完整的记录的拷贝。 1.1.区块链的本质区块链的本质是特殊的分布式数据库。 区块链的主要作用是存储信息，任何需要保存的信息，都可以写入区块链，也可以从里面读取，所以它是数据库。在区块链中，任何人都可以架设服务器，加入区块链网络，成">
<meta property="og:locale" content="default">
<meta property="og:updated_time" content="2018-10-14T13:58:08.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="卢家豪 - 区块链概论学习">
<meta name="twitter:description" content="1.什么是区块链？区块链属于一种去中心化的记录技术。参与到该系统上的节点，可能属于不同组织，彼此无需信任。区块链数据由所有节点共同维护，每个参与维护的节点都能复制获得一份完整的记录的拷贝。 1.1.区块链的本质区块链的本质是特殊的分布式数据库。 区块链的主要作用是存储信息，任何需要保存的信息，都可以写入区块链，也可以从里面读取，所以它是数据库。在区块链中，任何人都可以架设服务器，加入区块链网络，成">

    
    <link rel="alternative" href="/atom.xml" title="B3434lockchain" type="application/atom+xml">
    
    
    <link rel="icon" href="/img/favicon.ico">
    
    
    <link rel="apple-touch-icon" href="/img/jacman.jpg">
    <link rel="apple-touch-icon-precomposed" href="/img/jacman.jpg">
    
    <link rel="stylesheet" href="/css/style.css">
</head>

  <body>
    <header>
      
<div>
		
			<div id="imglogo">
				<a href="/"><img src="/img/logo.png" alt="B3434lockchain" title="B3434lockchain"/></a>
			</div>
			
			<div id="textlogo">
				<h1 class="site-name"><a href="/" title="B3434lockchain">B3434lockchain</a></h1>
				<h2 class="blog-motto"></h2>
			</div>
			<div class="navbar"><a class="navbutton navmobile" href="#" title="Menu">
			</a></div>
			<nav class="animated">
				<ul>
					<ul>
					 
						<li><a href="/">Home</a></li>
					
						<li><a href="/archives">Archives</a></li>
					
						<li><a href="/about">About</a></li>
					
					<li>
 					
						<form class="search" action="https://www.baidu.com" target="_blank">
							<label>Search</label>
						<input name="s" type="hidden" value=  ><input type="text" name="q" size="30" placeholder="Search"><br>
						</form>
					
					</li>
				</ul>
			</nav>			
</div>
    </header>
    <div id="container">
      <div id="main" class="post" itemscope itemprop="blogPost">
  
	<article itemprop="articleBody"> 
		<header class="article-info clearfix">
  <h1 itemprop="name">
    
      <a href="/2018/10/14/lujiahao/lujiahao2/" title="卢家豪 - 区块链概论学习" itemprop="url">卢家豪 - 区块链概论学习</a>
  </h1>
  <p class="article-author">By
       
		<a href="/about" title="b3434lockchain" target="_blank" itemprop="author">b3434lockchain</a>
		
  <p class="article-time">
    <time datetime="2018-10-14T13:40:00.000Z" itemprop="datePublished"> Published 2018-10-14</time>
    
  </p>
</header>
	<div class="article-content">
		
		<div id="toc" class="toc-article">
			<strong class="toc-title">Contents</strong>
		
			<ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#1-什么是区块链？"><span class="toc-number">1.</span> <span class="toc-text">1.什么是区块链？</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#1-1-区块链的本质"><span class="toc-number">1.1.</span> <span class="toc-text">1.1.区块链的本质</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-2-区块链的特点"><span class="toc-number">1.2.</span> <span class="toc-text">1.2.区块链的特点</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#1-2-1-区块链的技术特点"><span class="toc-number">1.2.1.</span> <span class="toc-text">1.2.1.区块链的技术特点</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#1-2-2-区块链的开发特点"><span class="toc-number">1.2.2.</span> <span class="toc-text">1.2.2.区块链的开发特点</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-3-区块"><span class="toc-number">1.3.</span> <span class="toc-text">1.3.区块</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-4-哈希的不可修改性"><span class="toc-number">1.4.</span> <span class="toc-text">1.4.哈希的不可修改性</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-5-采矿"><span class="toc-number">1.5.</span> <span class="toc-text">1.5.采矿</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-6-区块链的分支"><span class="toc-number">1.6.</span> <span class="toc-text">1.6.区块链的分支</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-7-总结"><span class="toc-number">1.7.</span> <span class="toc-text">1.7.总结</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#2-区块链的发展历史"><span class="toc-number">2.</span> <span class="toc-text">2.区块链的发展历史</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#2-1-比特币"><span class="toc-number">2.1.</span> <span class="toc-text">2.1.比特币</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-1-比特币简介"><span class="toc-number">2.1.1.</span> <span class="toc-text">2.1.1.比特币简介</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-2-比特币的产生"><span class="toc-number">2.1.2.</span> <span class="toc-text">2.1.2.比特币的产生</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-3-比特币白皮书"><span class="toc-number">2.1.3.</span> <span class="toc-text">2.1.3.比特币白皮书</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-4-比特币的现状"><span class="toc-number">2.1.4.</span> <span class="toc-text">2.1.4.比特币的现状</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-2-以太坊"><span class="toc-number">2.2.</span> <span class="toc-text">2.2.以太坊</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-1-以太坊简介"><span class="toc-number">2.2.1.</span> <span class="toc-text">2.2.1.以太坊简介</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-2-特点"><span class="toc-number">2.2.2.</span> <span class="toc-text">2.2.2.特点</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-3-以太坊的协议设计"><span class="toc-number">2.2.3.</span> <span class="toc-text">2.2.3.以太坊的协议设计</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-3-1-核心概念"><span class="toc-number">2.2.3.1.</span> <span class="toc-text">2.2.3.1.核心概念</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-3-2-一致性"><span class="toc-number">2.2.3.2.</span> <span class="toc-text">2.2.3.2.一致性</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-3-3-降低攻击"><span class="toc-number">2.2.3.3.</span> <span class="toc-text">2.2.3.3.降低攻击</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-3-4-提高扩展性"><span class="toc-number">2.2.3.4.</span> <span class="toc-text">2.2.3.4.提高扩展性</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-4-以太坊的应用实现"><span class="toc-number">2.2.4.</span> <span class="toc-text">2.2.4.以太坊的应用实现</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-4-1-区块链程序应用"><span class="toc-number">2.2.4.1.</span> <span class="toc-text">2.2.4.1.区块链程序应用</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-4-2-客户端软件"><span class="toc-number">2.2.4.2.</span> <span class="toc-text">2.2.4.2.客户端软件</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-4-3-认许制记账"><span class="toc-number">2.2.4.3.</span> <span class="toc-text">2.2.4.3.认许制记账</span></a></li></ol></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-3-超级账本"><span class="toc-number">2.3.</span> <span class="toc-text">2.3.超级账本</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-1-超级账本简介"><span class="toc-number">2.3.1.</span> <span class="toc-text">2.3.1.超级账本简介</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-2-组成"><span class="toc-number">2.3.2.</span> <span class="toc-text">2.3.2.组成</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-1-Fabric"><span class="toc-number">2.3.2.1.</span> <span class="toc-text">2.3.2.1.Fabric</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-2-Sawtooth"><span class="toc-number">2.3.2.2.</span> <span class="toc-text">2.3.2.2.Sawtooth</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-3-Iroha"><span class="toc-number">2.3.2.3.</span> <span class="toc-text">2.3.2.3.Iroha</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-4-Blochchain-Explorer"><span class="toc-number">2.3.2.4.</span> <span class="toc-text">2.3.2.4.Blochchain Explorer</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-5-Cello"><span class="toc-number">2.3.2.5.</span> <span class="toc-text">2.3.2.5.Cello</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-6-Indy"><span class="toc-number">2.3.2.6.</span> <span class="toc-text">2.3.2.6.Indy</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-7-Composer"><span class="toc-number">2.3.2.7.</span> <span class="toc-text">2.3.2.7.Composer</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-8-Burrow"><span class="toc-number">2.3.2.8.</span> <span class="toc-text">2.3.2.8.Burrow</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-3-架构设计"><span class="toc-number">2.3.3.</span> <span class="toc-text">2.3.3.架构设计</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-4-应用场景"><span class="toc-number">2.3.4.</span> <span class="toc-text">2.3.4.应用场景</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-5-开发者开发"><span class="toc-number">2.3.5.</span> <span class="toc-text">2.3.5.开发者开发</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-5-1-智能合约开发"><span class="toc-number">2.3.5.1.</span> <span class="toc-text">2.3.5.1.智能合约开发</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-5-2-应用程序开发"><span class="toc-number">2.3.5.2.</span> <span class="toc-text">2.3.5.2.应用程序开发</span></a></li></ol></li></ol></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#3-区块链有什么项目"><span class="toc-number">3.</span> <span class="toc-text">3.区块链有什么项目</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#3-1-数字资产"><span class="toc-number">3.1.</span> <span class="toc-text">3.1.数字资产</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-2-智能合约平台以太坊"><span class="toc-number">3.2.</span> <span class="toc-text">3.2.智能合约平台以太坊</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-3-全球支付与结算"><span class="toc-number">3.3.</span> <span class="toc-text">3.3.全球支付与结算</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-4-平台类应用项目"><span class="toc-number">3.4.</span> <span class="toc-text">3.4.平台类应用项目</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#4-区块链使用什么技术"><span class="toc-number">4.</span> <span class="toc-text">4.区块链使用什么技术</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#4-1-共识机制"><span class="toc-number">4.1.</span> <span class="toc-text">4.1.共识机制</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#4-1-1-PoW"><span class="toc-number">4.1.1.</span> <span class="toc-text">4.1.1.PoW</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#4-1-2-PoS"><span class="toc-number">4.1.2.</span> <span class="toc-text">4.1.2.PoS</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-2-密码学算法"><span class="toc-number">4.2.</span> <span class="toc-text">4.2.密码学算法</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-3-P2P网络架构和分布式系统"><span class="toc-number">4.3.</span> <span class="toc-text">4.3.P2P网络架构和分布式系统</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-4-脚本"><span class="toc-number">4.4.</span> <span class="toc-text">4.4.脚本</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-5-智能合约"><span class="toc-number">4.5.</span> <span class="toc-text">4.5.智能合约</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#5-区块链的研究方向"><span class="toc-number">5.</span> <span class="toc-text">5.区块链的研究方向</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#5-1-技术的发展方向"><span class="toc-number">5.1.</span> <span class="toc-text">5.1.技术的发展方向</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#5-2-应用的发展方向"><span class="toc-number">5.2.</span> <span class="toc-text">5.2.应用的发展方向</span></a></li></ol></li></ol>
		
		</div>
		
		<h1 id="1-什么是区块链？"><a href="#1-什么是区块链？" class="headerlink" title="1.什么是区块链？"></a>1.什么是区块链？</h1><p>区块链属于一种去中心化的记录技术。参与到该系统上的节点，可能属于不同组织，彼此无需信任。区块链数据由所有节点共同维护，每个参与维护的节点都能复制获得一份完整的记录的拷贝。</p>
<h2 id="1-1-区块链的本质"><a href="#1-1-区块链的本质" class="headerlink" title="1.1.区块链的本质"></a>1.1.区块链的本质</h2><p>区块链的本质是特殊的分布式数据库。</p>
<p>区块链的主要作用是存储信息，任何需要保存的信息，都可以写入区块链，也可以从里面读取，所以它是数据库。在区块链中，任何人都可以架设服务器，加入区块链网络，成为一个节点。区块链的世界里面，没有中心节点，每个节点都是平等的，都保存着整个数据库。你可以向任何一个节点，写入或读取数据，因为所有节点最后都会同步，保证区块链的一致。</p>
<h2 id="1-2-区块链的特点"><a href="#1-2-区块链的特点" class="headerlink" title="1.2.区块链的特点"></a>1.2.区块链的特点</h2><pre><code>Ⅰ. 去中心化
Ⅱ. 可溯源
Ⅲ. 不可篡改
Ⅳ. 公开透明
</code></pre><h3 id="1-2-1-区块链的技术特点"><a href="#1-2-1-区块链的技术特点" class="headerlink" title="1.2.1.区块链的技术特点"></a>1.2.1.区块链的技术特点</h3><p>Ⅰ. 去中心化（Decentralized）：区块链中没有中介机构，所有节点的权利和义务都相等，任一节点停止工作都会不影响系统整体的运作；</p>
<p>Ⅱ. 去信任（Trustless）：系统中所有节点之间无需信任也可以进行交易，因为数据库和整个系统的运作是公开透明的，在系统的规则和时间范围内，节点之间无法欺骗彼此；</p>
<p>Ⅲ. 集体维护（Collectively Maintain）：系统是由其中所有具有维护功能的节点共同维护的，系统中所有人共同参与维护工作；</p>
<p>Ⅳ. 可靠数据库（Reliable Database）：系统中每一个节点都拥有最新的完整数据库拷贝，修改单个节点的数据库是无效的，因为系统会自动比较，认为最多次出现的相同数据记录为真。</p>
<h3 id="1-2-2-区块链的开发特点"><a href="#1-2-2-区块链的开发特点" class="headerlink" title="1.2.2.区块链的开发特点"></a>1.2.2.区块链的开发特点</h3><p>Ⅰ. 开放性：系统是开放的，除了交易各方的私有信息被加密外，区块链的数据对所有人公开，任何人都可以通过公开的接口查询区块链数据和开发相关应用，因此整个系统信息高度透明。</p>
<p>Ⅱ. 自治性：区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据，使得对“人”的信任改成了对机器的信任，任何人为的干预不起作用。</p>
<p>Ⅲ. 信息不可篡改：一旦信息经过验证并添加至区块链，就会永久的存储起来，除非能够同时控制住系统中超过51%的节点，否则单个节点上对数据库的修改是无效的，因此区块链的数据稳定性和可靠性极高。</p>
<p>Ⅳ. 匿名性：由于节点之间的交换遵循固定的算法，其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效)，因此交易对手无须通过公开身份的方式让对方自己产生信任，对信用的累积非常有帮助。</p>
<h2 id="1-3-区块"><a href="#1-3-区块" class="headerlink" title="1.3.区块"></a>1.3.区块</h2><p>区块链由一个个区块（block）组成。区块就像数据库中的记录，在区块链中写入新的数据，就是创建新的区块。</p>
<pre><code>每个区块包含两个部分：
区块头（Head）：记录当前区块的特征值
区块体（Body）：实际数据
</code></pre><p>区块头包含当前区块的多项特征值，比如生成时间、实际数据（即区块体）的哈希、上一个区块的哈希等等。</p>
<p>所谓”哈希”就是计算机可以对任意内容，计算出一个长度相同的特征值。区块链的哈希长度是256位，也就是说，不管原始内容是什么，最后都会计算出一个256位的二进制数字。而且可以保证，只要原始内容不同，对应的哈希一定是不同的。</p>
<pre><code>因此，就有两个重要的推论：
推论1：每个区块的哈希都是不一样的，可以通过哈希标识区块。
推论2：如果区块的内容变了，它的哈希一定会改变。
</code></pre><h2 id="1-4-哈希的不可修改性"><a href="#1-4-哈希的不可修改性" class="headerlink" title="1.4.哈希的不可修改性"></a>1.4.哈希的不可修改性</h2><p>区块与哈希是一一对应的，每个区块的哈希都是针对”区块头”（Head）计算的。也就是说，把区块头的各项特征值，按照顺序连接在一起，组成一个很长的字符串，再对这个字符串计算哈希。</p>
<p>区块哈希的计算公式为：Hash = SHA256(区块头).SHA256是区块链的哈希算法。注意，这个公式里面只包含区块头，不包含区块体，也就是说，哈希由区块头唯一决定。</p>
<p>区块头包含很多内容，其中有当前区块体的哈希，还有上一个区块的哈希。这意味着，如果当前区块体的内容变了，或者上一个区块的哈希变了，一定会引起当前区块的哈希改变。这一点对区块链有重大意义。如果有人修改了一个区块，该区块的哈希就变了。为了让后面的区块还能连到它（因为下一个区块包含上一个区块的哈希），该人必须依次修改后面所有的区块，否则被改掉的区块就脱离区块链了。由于后面要提到的原因，哈希的计算很耗时，短时间内修改多个区块几乎不可能发生，除非有人掌握了全网51%以上的计算能力。正是通过这种联动机制，区块链保证了自身的可靠性，数据一旦写入，就无法被篡改。这就像历史一样，发生了就是发生了，从此再无法改变。</p>
<h2 id="1-5-采矿"><a href="#1-5-采矿" class="headerlink" title="1.5.采矿"></a>1.5.采矿</h2><p>由于必须保证节点之间的同步，所以新区块的添加速度不能太快。试想一下，你刚刚同步了一个区块，准备基于它生成下一个区块，但这时别的节点又有新区块生成，你不得不放弃做了一半的计算，再次去同步。因为每个区块的后面，只能跟着一个区块，你永远只能在最新区块的后面，生成下一个区块。所以，你别无选择，一听到信号，就必须立刻同步。</p>
<p>区块链的发明者中本聪故意让添加新区块，变得很困难。他的设计是，平均每10分钟，全网才能生成一个新区块，一小时也就六个。这种产出速度不是通过命令达成的，而是故意设置了海量的计算。也就是说，只有通过极其大量的计算，才能得到当前区块的有效哈希，从而把新区块添加到区块链。由于计算量太大，所以快不起来。</p>
<p>这个过程就叫做采矿（mining），因为计算有效哈希的难度，好比在全世界的沙子里面，找到一粒符合条件的沙子。计算哈希的机器就叫做矿机，操作矿机的人就叫做矿工。</p>
<h2 id="1-6-区块链的分支"><a href="#1-6-区块链的分支" class="headerlink" title="1.6.区块链的分支"></a>1.6.区块链的分支</h2><p>即使区块链是可靠的，现在还有一个问题没有解决：如果两个人同时向区块链写入数据，也就是说，同时有两个区块加入，因为它们都连着前一个区块，就形成了分叉。这时应该采纳哪一个区块呢？</p>
<p>现在的规则是，新节点总是采用最长的那条区块链。如果区块链有分叉，将看哪个分支在分叉点后面，先达到6个新区块（称为”六次确认”）。按照10分钟一个区块计算，一小时就可以确认。由于新区块的生成速度由计算能力决定，所以这条规则表明，拥有大多数计算能力的那条分支，就是正宗的区块链。</p>
<h2 id="1-7-总结"><a href="#1-7-总结" class="headerlink" title="1.7.总结"></a>1.7.总结</h2><p>区块链作为去中心化的分布式数据库，运行至今都没有出现大的问题。这证明它是可行的。但是，为了保证数据的可靠性，区块链也有自己的代价。一是效率，数据写入区块链，最少要等待十分钟，所有节点都同步数据，则需要更多的时间；二是能耗，区块的生成需要矿工进行无数无意义的计算，这是非常耗费能源的。</p>
<h1 id="2-区块链的发展历史"><a href="#2-区块链的发展历史" class="headerlink" title="2.区块链的发展历史"></a>2.区块链的发展历史</h1><p>区块链的发展历史可以分为三个阶段，分别是比特币阶段、以太坊阶段和超级账本阶段。</p>
<p>比特币：代表数字货币、区块链思想的诞生，提供了区块链技术应用的原型</p>
<p>以太坊：挣脱数字货币的枷锁，智能合约的诞生，延伸了区块链技术的功能</p>
<p>超级账本：进一步引入权限控制和安全保障，首次将区块链技术引入到分布式联盟账本的应用场景。</p>
<h2 id="2-1-比特币"><a href="#2-1-比特币" class="headerlink" title="2.1.比特币"></a>2.1.比特币</h2><h3 id="2-1-1-比特币简介"><a href="#2-1-1-比特币简介" class="headerlink" title="2.1.1.比特币简介"></a>2.1.1.比特币简介</h3><p>比特币(BitCoin)是基于密码学和经济博弈的一种数字货币，也是历史上首个经过大规模长时间运作检验的数字货币系统。这种全球通用的共识主动性加密电子货币，其实就是一种P2P形式的数字代码。比特币不依靠特定货币机构发行，它依据特定算法，通过大量的计算产生，比特币使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。</p>
<p>比特币是由中本聪在2009年1月设计的一种数字货币。比特币能够让用户在一个去中心化的、点对点的网络中完成支付，其独特的地方在于不需要一个中央的清算中心或者金融机构对交易进行清算。用户只需要互联网连接以及比特币软件就可以向另外一个公开的账户或地址进行支付操作。每一枚比特币的产生和交易消费都会通过P2P分布式网络记录并通告全网。</p>
<h3 id="2-1-2-比特币的产生"><a href="#2-1-2-比特币的产生" class="headerlink" title="2.1.2.比特币的产生"></a>2.1.2.比特币的产生</h3><p>2008年，中本聪写了一篇论文《比特币白皮书》，在其中设计了一种数字货币，并且阐述了这种数字货币的原理和算法。2009年1月，有人根据中本聪的文章，组织了一个开源项目，由全球的程序员免费参与，完成了比特币核心算法和软件的开发。中本聪参与到该项目中，并通过挖矿挖到第一个数据块，得到50个比特币。</p>
<h3 id="2-1-3-比特币白皮书"><a href="#2-1-3-比特币白皮书" class="headerlink" title="2.1.3.比特币白皮书"></a>2.1.3.比特币白皮书</h3><p>比特币白皮书介绍的是一种点对点的电子现金系统。</p>
<pre><code>原文链接：
https://bitcoin.org/bitcoin.pdf
以下为中文链接：
https://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system
目录如下：
1.简介
2.交易(Transactions)
3.时间戳服务器(Timestamp server) 
4.工作量证明（Proof-of-Work）
5.网络
6.激励
7.回收硬盘空间
8.简化的支付确认（Simplified Payment Verification）
9.价值的组合与分割（Combining and Splitting Value）
10.隐私（Privacy）
11.计算
12.结论
</code></pre><h3 id="2-1-4-比特币的现状"><a href="#2-1-4-比特币的现状" class="headerlink" title="2.1.4.比特币的现状"></a>2.1.4.比特币的现状</h3><p>比特币极具创新性，目前还处于实验阶段，价格不稳定，现在不是稳定的结算单位。比特币缺少大部分商家支持，而且受众人群少。系统吞吐能力小，无法支撑全球大规模交易，所以需要扩容。比特币扩容历史很艰难，现在分为BCT和BCH。</p>
<p>比特币是极具有颠覆性的创新产物，但仍然是处于试验阶段。它的币值剧烈波动，还不是稳定结算单位，而且缺乏多数商家的支持，受众人数仍然很小。而且该系统吞吐能力仍然很小，尚无法支撑全球大规模交易，需要扩容。</p>
<h2 id="2-2-以太坊"><a href="#2-2-以太坊" class="headerlink" title="2.2.以太坊"></a>2.2.以太坊</h2><p>以太坊项目进一步扩展了区块链网络的能力，从交易延伸为智能合约。</p>
<h3 id="2-2-1-以太坊简介"><a href="#2-2-1-以太坊简介" class="headerlink" title="2.2.1.以太坊简介"></a>2.2.1.以太坊简介</h3><p>根据以太坊官方的宣称，以太坊（Ethereum）目标是打造成一个运行智能合约的去中心化平台，平台上的应用按程序设定运行，不存在停机、审查、欺诈、第三方人为干预的可能。以太坊平台由Golang、C++、Python 等多种编程语言实现。 当然，为了打造这个平台，以太坊提供了一条公开的区块链，并制定了面向智能合约的一套编程语言。智能合约开发者可以在其上使用官方提供的工具来开发支持以太坊区块链协议的应用，即所谓的 DAPP。</p>
<h3 id="2-2-2-特点"><a href="#2-2-2-特点" class="headerlink" title="2.2.2.特点"></a>2.2.2.特点</h3><pre><code>以太坊区块链的特点主要包括：
1）单独为智能合约指定编程语言 Solidity；
2）使用了内存需求较高的哈希函数：避免出现算力矿机；
3）uncle 块激励机制：降低矿池的优势，减少区块产生间隔为15秒；
4）难度调整算法：一定的自动反馈机制；
5）gas 限制调整算法：限制代码执行指令数，避免循环攻击；
6) 记录当前状态的哈希树的根哈希值到区块：某些情形下实现轻量级客户端；
7) 为执行智能合约而设计的简化的虚拟机 EVM.
</code></pre><h3 id="2-2-3-以太坊的协议设计"><a href="#2-2-3-以太坊的协议设计" class="headerlink" title="2.2.3.以太坊的协议设计"></a>2.2.3.以太坊的协议设计</h3><h4 id="2-2-3-1-核心概念"><a href="#2-2-3-1-核心概念" class="headerlink" title="2.2.3.1.核心概念"></a>2.2.3.1.核心概念</h4><pre><code>EVM：以太坊虚拟机，轻量级虚拟机环境，是以太坊中智能合约的运行环境。
Account：账户分两类：合约账户存储执行的合约代码；外部账户为以太币拥有者账户，对应到公钥。
Transaction：交易，从一个账户到另一个账户的消息，包括以太币或者合约执行参数。
Gas：燃料，每执行一条合约指令会消耗一定的燃料，当某个交易还未执行结束，而燃料消耗完时，合
约执行终止并回滚状态。
</code></pre><h4 id="2-2-3-2-一致性"><a href="#2-2-3-2-一致性" class="headerlink" title="2.2.3.2.一致性"></a>2.2.3.2.一致性</h4><p>目前采用了PoW作为一致达成保证，未来可能迁移到PoS上。</p>
<h4 id="2-2-3-3-降低攻击"><a href="#2-2-3-3-降低攻击" class="headerlink" title="2.2.3.3.降低攻击"></a>2.2.3.3.降低攻击</h4><p>设计核心思想是通过经济激励机制防止少数人作恶：</p>
<pre><code>1) 所有交易都要提供交易费用，避免DDoS攻击；
2) 程序运行指令数通过gas来限制，所消耗的费用超过设定上限时会被取消，避免恶意合约。
</code></pre><h4 id="2-2-3-4-提高扩展性"><a href="#2-2-3-4-提高扩展性" class="headerlink" title="2.2.3.4.提高扩展性"></a>2.2.3.4.提高扩展性</h4><p>以太坊未来希望通过分片机制可以提高整个网络的扩展性。分片之前整个网络的处理取决于单个节点的处理。分片后，只有同一片内的处理是同步的、一致的，不同分片之间则可以是异步的。</p>
<h3 id="2-2-4-以太坊的应用实现"><a href="#2-2-4-以太坊的应用实现" class="headerlink" title="2.2.4.以太坊的应用实现"></a>2.2.4.以太坊的应用实现</h3><h4 id="2-2-4-1-区块链程序应用"><a href="#2-2-4-1-区块链程序应用" class="headerlink" title="2.2.4.1.区块链程序应用"></a>2.2.4.1.区块链程序应用</h4><p>以太坊可以用来创建去中心化的程序、自治组织和智能合约，2016年5月已经有数十个可用的程序。预期的应用目标涵盖金融、物联网等。去中心化自治组织有潜力让许多原本无法运行或成本过高的营运模型成为可能。<br>    目前较知名的应用有：</p>
<pre><code>1) 去中心化创业投资：The DAO用以太币资金创立，目标是为商企业和非营利机构创建新的去中心化营业模式、The Rudimental让独立艺术家在区块链上进行群众募资。
2) 社会经济平台：Backfeed。
3) 去中心化预测市场：Augur。
4) 物联网：Ethcore（一间以太坊公司）研发的客户端、Chronicled（一间区块链公司）发表了以太坊区块链的实物资产验证平台；芯片公司、物理IP创建者和生产者可以用植入的蓝牙或近场通信进行验证。Slock.It开发的智能锁可以在付费后自动打开，让用户在付费后可以帮电动车充电、或是打开租屋的房门。
5) 虚拟宝物交易平台：FreeMyVunk。
6) 版权授权：Ujo Music平台让创作人用智能合约发布音乐，消费者可以直接付费给创作人。伊莫珍·希普用此平台发布了一首单曲。
7) 智能电网：TransActive Grid让用户可以和邻居买卖能源。
8) 去中心化期权市场：Etheropt。
9) 钉住汇率的代币：DigixDAO提供与黄金挂钩的代币，在2016年四月正式营运。Decentralized Capital提供和各种货币挂钩的代币。
10) 移动支付：Everex让外劳汇款回家乡。
</code></pre><h4 id="2-2-4-2-客户端软件"><a href="#2-2-4-2-客户端软件" class="headerlink" title="2.2.4.2.客户端软件"></a>2.2.4.2.客户端软件</h4><p>以太坊的两个主要的客户端软件是Geth和Parity。<br>企业软件公司也正测试用以太坊作为各种用途。已知有兴趣的公司包括微软、IBM、摩根大通。德勤和ConsenSys在2016年宣布成立数字银行Project ConsenSys。R3公司在Microsoft Azure上运行私人以太坊区块链，将11间银行连接至一本分布式帐薄（distributed ledger）。Microsoft Visual Studio提供程序开发者使用Solidity编程语言。英国政府中负责推动创新的机构Innovate UK提供了近25万英镑给Tramonex用以太坊发展跨国支付系统。</p>
<h4 id="2-2-4-3-认许制记账"><a href="#2-2-4-3-认许制记账" class="headerlink" title="2.2.4.3.认许制记账"></a>2.2.4.3.认许制记账</h4><p>目前有许多方案正在研究使用以太坊创建认许制的区块链。<br>摩根大通打算用以太坊上创建一个私人区块链“Quorum”。其功能是洗乱派生性金融产品及其交易纪录来保护交易者的隐私，但同时匹配金融管制单位在信息公开上的要求，以期在保障隐私和信息公开之间找到平衡。</p>
<h2 id="2-3-超级账本"><a href="#2-3-超级账本" class="headerlink" title="2.3.超级账本"></a>2.3.超级账本</h2><h3 id="2-3-1-超级账本简介"><a href="#2-3-1-超级账本简介" class="headerlink" title="2.3.1.超级账本简介"></a>2.3.1.超级账本简介</h3><p>超级账本（hyperledger）是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目，30家初始企业成员（包括IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、Cisco等）。目标是让成员共同合作，共建开放平台，满足来自多个不同行业各种用户案例，并简化业务流程。</p>
<h3 id="2-3-2-组成"><a href="#2-3-2-组成" class="headerlink" title="2.3.2.组成"></a>2.3.2.组成</h3><p>作为一个联合项目（collaborative project），超级账本由面向不同目的和场景的子项目构成。目前包括Fabric、Sawtooth、Iroha、Blockchain Explorer、Cello、Indy、Composer、Burrow等8大顶级项目，所有项目都遵守Apache v2许可。</p>
<h4 id="2-3-2-1-Fabric"><a href="#2-3-2-1-Fabric" class="headerlink" title="2.3.2.1.Fabric"></a>2.3.2.1.Fabric</h4><pre><code>模块：Fabric、Fabric CA、Fabric SDK、Fabric API
描述：提供了面向联盟链场景的分布式账本平台实现
发起：IBM和DAH
地址：http://github.com/hyperledger/fabric
实现：Go语言
</code></pre><h4 id="2-3-2-2-Sawtooth"><a href="#2-3-2-2-Sawtooth" class="headerlink" title="2.3.2.2.Sawtooth"></a>2.3.2.2.Sawtooth</h4><pre><code>模块：arcade、core、dev-tools、validator、mktplace
描述：支持全新的基于硬片芯片的共识机制PoET
发起：Inte
地址：http://github.com/hyperledger/sawtooth-core
实现：Python
</code></pre><h4 id="2-3-2-3-Iroha"><a href="#2-3-2-3-Iroha" class="headerlink" title="2.3.2.3.Iroha"></a>2.3.2.3.Iroha</h4><pre><code>描述：为超级账本的C++开发者提供开发环境，为移动和网页应用提供基础构架支持
发起：Soramitsu
地址：http://github.com/hyperledger/iroha
实现：C++
</code></pre><h4 id="2-3-2-4-Blochchain-Explorer"><a href="#2-3-2-4-Blochchain-Explorer" class="headerlink" title="2.3.2.4.Blochchain Explorer"></a>2.3.2.4.Blochchain Explorer</h4><pre><code>描述：提供web界面，可以查询绑定区块链的状态
发起：DTCC、IBM、Intel
地址：http://github.com/hyperledger/blockchain-explorer
实现：Node.js
</code></pre><h4 id="2-3-2-5-Cello"><a href="#2-3-2-5-Cello" class="headerlink" title="2.3.2.5.Cello"></a>2.3.2.5.Cello</h4><pre><code>描述：部署和管理多条区块链
发起：IBM
地址：核心代码：http://github.com/hyperledger/cello
    数据分析：http://github.com/hyperledger/cello-analytics
实现：Python和JavaScript
</code></pre><h4 id="2-3-2-6-Indy"><a href="#2-3-2-6-Indy" class="headerlink" title="2.3.2.6.Indy"></a>2.3.2.6.Indy</h4><pre><code>描述：基于分布式账本技术的数字身份管理机制
发起：sovrin基金会
地址：http://github.com/hyperledger/indy-node
实现：Python
</code></pre><h4 id="2-3-2-7-Composer"><a href="#2-3-2-7-Composer" class="headerlink" title="2.3.2.7.Composer"></a>2.3.2.7.Composer</h4><pre><code>描述：提供面向链码开发的高级语言支持
发起：IBM
地址：http://github.com/hyperledger/composer
实现：Node.js
</code></pre><h4 id="2-3-2-8-Burrow"><a href="#2-3-2-8-Burrow" class="headerlink" title="2.3.2.8.Burrow"></a>2.3.2.8.Burrow</h4><pre><code>描述：提供以太坊虚拟机的资产，实现支持高效交易的带权限区块链
发起：Monax
地址：http://github.com/hyperledger/burrow
实现：Go语言
</code></pre><h3 id="2-3-3-架构设计"><a href="#2-3-3-架构设计" class="headerlink" title="2.3.3.架构设计"></a>2.3.3.架构设计</h3><p>超级账本包括三大组件：区块链（Blockchain）、链码（Chaincode）、成员权限管理（Membership）。</p>
<p>区块链提供一个分布式账本平台。一般地，多个交易被打包进区块中，多个区块构成一条区块链。区块链代表的是账本状态机发生变更的历史过程。链码包含所有的处理逻辑，并对外提供接口，外部通过调用链码接口来改变世界观。世界观是一个键值数据库，用于存放链码执行过程中涉及到的状态变量。成员权限管理基于 PKI ，平台可以对接入的节点和客户端的能力进行限制。</p>
<h3 id="2-3-4-应用场景"><a href="#2-3-4-应用场景" class="headerlink" title="2.3.4.应用场景"></a>2.3.4.应用场景</h3><p>超级账本可以应用在开放可信供应链、资产存管、商务合同、银联积分交换平台、商品身份溯源、食品安全等方向。</p>
<h3 id="2-3-5-开发者开发"><a href="#2-3-5-开发者开发" class="headerlink" title="2.3.5.开发者开发"></a>2.3.5.开发者开发</h3><p>作为区块链应用开发者，需要根据业务逻辑来开发与分布式账本打交道的智能合约，以及相应的用户侧应用程序。超级账本支持了基于主流编程语言的智能合约（链码）设计，极大地方便了应用开发人员快速开发新型的分布式应用，或将已有应用迁移到区块链系统上。</p>
<p>区块链应用，一般由若干部署在区块链网络中的智能合约，以及调用这些智能合约的应用程序组成。典型的区块链应用程序的工作过程如下图所示。其中，用户专注于与业务本身相关的应用程序；智能合约则封装了与区块账本直接交互的相关过程，被应用程序调用。</p>
<h4 id="2-3-5-1-智能合约开发"><a href="#2-3-5-1-智能合约开发" class="headerlink" title="2.3.5.1.智能合约开发"></a>2.3.5.1.智能合约开发</h4><p>智能合约直接与账本结构打交道，处于十分核心的位置。智能合约代码本质上是为了对上层业务逻辑进行支持。智能合约最终会部署在区块链网络中与账本进行交互。开发者需要了解所选用区块链平台的智能合约结构、语言特性、状态存储方式等知识。<br>此外，开发者还需要对智能合约的生命周期管理进行考虑，包括代码的编写、版本管理、提交验证，以及升级版本等，都需要遵循一套标准的规范。</p>
<h4 id="2-3-5-2-应用程序开发"><a href="#2-3-5-2-应用程序开发" class="headerlink" title="2.3.5.2.应用程序开发"></a>2.3.5.2.应用程序开发</h4><p>应用程序通过调用智能合约提供的方法接口来实现业务逻辑。由于离用户侧更贴近，应用程序的开发更为灵活，可以采用已有的主流开发语言进行开发，包括Javascript、Python、Go、Java等。<br>在运行位置上，应用程序既可以运行在区块链网络的节点上，又可以运行在中心化的服务器上，但必须保证可以访问到智能合约暴露的服务接口。</p>
<h1 id="3-区块链有什么项目"><a href="#3-区块链有什么项目" class="headerlink" title="3.区块链有什么项目"></a>3.区块链有什么项目</h1><h2 id="3-1-数字资产"><a href="#3-1-数字资产" class="headerlink" title="3.1.数字资产"></a>3.1.数字资产</h2><p>和常见的货币一样，这类用途主要用来交易，不过因为应用场景比较有限，目前数字资产的市场容量增长不快。</p>
<p>一般数字资产：</p>
<p>比特币：诞生于2009年，它是一种建立在全球分布式网络上，没有央行和第三方机构参与发行，总量固定的加密数字资产。比特币去中心化、不可篡改等特征克服了以往中心化交易成本高、效率低、信息掌握在少数人手中的弊端。</p>
<p>莱特币：莱特币诞生于2011年11月9⽇，它也是⼀种分布式加密数字资产，主流的各大交易平台都支持莱特币交易。莱特币受到了比特币的启发，并在比特币的基础之上有着技术上相同的实现原理，它的宗旨是改进比特币，所以它和比特币有着很多相似之处。莱特币在比特币的基础之上做了一些改进，在数字资产中享有很⾼的地位。</p>
<p>新经币：诞生于2015年4月1日，是第一个采用测试驱动开发模式开发出来的数字资产。什么是测试驱动呢？就是先进行测试，然后再进行编程。测试驱动开发就是仅用通过测试的代码开发。新经币平台是从头到尾使用Java去开发的，融入了智能合约功能，能够处理和开展主流用途的手机应用，它在设计之初就意图打造成一个对用户友好的平台。</p>
<p>匿名数字资产：</p>
<p>达世币：达世币（Dash）诞生于2014年1月18日，它是一款支持即时交易、以保护用户隐私为目的数字资产。达世币匿名程度较比特币更高，交易无法被追踪和查询，对于不想暴露交易记录和财政隐私的用户是一种选择。达世币的转账有三种方式可以选择，一是普通转账，跟比特币一样，没有区别；二是及时交易，就是不需要矿工打包确认，就可以确认交易，解决了比特币需要10分钟打包确认的劣势；三是它可以做到匿名交易，即从网络上看不到是谁和谁进行了匿名转账。</p>
<p>门罗币：与其他数字资产不同，门罗币是通过环形签名的方式提供更好的匿名性。关于环形签名下面给你仔细说。我们刚才了解到，达世币是可以选择是否用匿名交易的，但是门罗币从2017年新的版本开始不提供这样的选择，而是全网所有的交易均为匿名交易。他们认为，在一个网络中，大部分人不匿名，少部分人匿名，其实起不到保护隐私的作用。所以门罗币这种匿名技术在国内宣传较少，国外知名度较高。门罗币满足电子现金的三个重要属性，去中心化、隐私性、数字化。</p>
<p>Zcash：Zcash诞生于2011年11月9日，是一个比较早的数字货币资产。是首个使用零知识证明机制，零知识证明是指（证明者能够在不向验证者提供任何有用的信息的情况下，使验证者相信某个论断是正确的。比方说A要向B证明自己拥有某个房间的钥匙，B来确定该房间内有某一物体，A用自己拥有的钥匙打开该房间的门，然后把物体拿出来出示给B，从而证明自己确实拥有该房间的钥匙。而不是直接将钥匙拿给B看，这种方法属于零知识证明）。Zcash就是使用零知识证明的区块链系统，它可提供完全的支付保密性。Zcash灵感来源于比特币，它的大部分代码也与比特币极其相似，例如它的总量是2100万枚，它的减半机制是4年减半。Zcash进一步完善了比特币匿名功能方面的不足。</p>
<h2 id="3-2-智能合约平台以太坊"><a href="#3-2-智能合约平台以太坊" class="headerlink" title="3.2.智能合约平台以太坊"></a>3.2.智能合约平台以太坊</h2><p>这类运用主要提供底层平台，来让开发者在它上面去实现运用。比如说实现电子合同，主要用来保证双方交易；比如实现房屋租金协议合同，来去确保房屋时间到达的时候，准时收到租金，而不至于违约。</p>
<p>因为以太坊的区块链语言是图灵完备并且可编程的，所以有较好的使用基础，因此在区块链的应用开发上，很多企业和开发者选择了以太坊区块链作为底层技术。以太坊从2015年7月上线到2017年9月份，短短的2年时间，全球已有300多个以太坊应用诞生。在以太坊上构建的应用，大多数应用的市值也都排在了数字资产市值的前列。截止2017年9月，Coinmarketcap排名前40的市值，以太坊的应用已经达到10个。比如去中心化的预测平台Augur，还有全球算力P2P市场的iEx.ec、用于分布式算力应用平台的Golem、用于黄金交易的DigixDAO等等，这些都是基于以太坊平台构建起来的。可见以太坊作为基础的应用，已经在全球逐步的风靡起来。</p>
<h2 id="3-3-全球支付与结算"><a href="#3-3-全球支付与结算" class="headerlink" title="3.3.全球支付与结算"></a>3.3.全球支付与结算</h2><p>这类用途主要实现国际之间的数字货币交易，可以在全球范围内转账任意一种货币，或者实现法币与数字资产的等价交换。</p>
<p>瑞波Ripple：这是目前区块链金融应用较成功的应用之一，它基于一个开放、中性协议构建，支持全球不同分类账本和网络之间即时、低成本的国际支付，银行也可以通过它在不同网络之间发送实时的国际付款。</p>
<p>Tether：本质上就是一个简单的数字货币，但是它实现了法定货币与数字货币等值交换。Tether的代币叫USDT，美元的简写是USD。事实上，Tether的代币就是与美元实行一对一兑换而保持稳定，1美元=1 USDT。为确保代币交易价格的稳定性，Tether基于法定货币产生的等额数字资产，然后由Tether公司来确保一个Tether可以兑换等额的美元。</p>
<h2 id="3-4-平台类应用项目"><a href="#3-4-平台类应用项目" class="headerlink" title="3.4.平台类应用项目"></a>3.4.平台类应用项目</h2><p>绝大部分运用都建立在以太坊之上，这类应用涵盖的运用场景范围非常的广泛，包括金融、社交、游戏、产权保护等等多个领域，可以实现存储、交易、支付等多种平台，目前是区块链资产增长最快的领域。</p>
<p>市场预测平台Augur：Augur是以太坊上的第一款应用，用户基于强大的预测数据对未来事件展开预测，预测正确的用户会获得奖励。利用Augur进行预测的步骤：第一步，建立账户然后充值；第二步，创建预测市场或者参与预测市场；第三步，事件结果报告出来，结果会被自动执行。</p>
<p>计算资源交易平台Golem：Golem是实现计算能力的全球共享平台，就像「滴滴专车」一样，允许用户通过网络买卖自己电脑的计算资源，实现计算能力的全球共享。</p>
<p>数字代币化平台DigixDAO：DigixDAO在区块链虚拟资产和黄金之类的实物资产之间产生了对应关系，给了其他实体资产一个很好的示范，为实体资产的代币化和文档化提供了思路。以后有可能不同的实体资产都有可能上链的一个典范。</p>
<h1 id="4-区块链使用什么技术"><a href="#4-区块链使用什么技术" class="headerlink" title="4.区块链使用什么技术"></a>4.区块链使用什么技术</h1><h2 id="4-1-共识机制"><a href="#4-1-共识机制" class="headerlink" title="4.1.共识机制"></a>4.1.共识机制</h2><p>共识机制在分布式系统中是无解的，为什么说是无解，众多的节点之间通信，必然存在网络自身不可靠的原因、主机故障原因、恶意操控等原因，故是无法保证实现完全的共识。Fischer, Lynch 和 Patterson三位在1985年就提出了一个FLP不可能原理：在网络可靠的前提下，任意节点失效，一个或者多个的最小化异步模型系统中，不可能存在一个解决一致性问题的确定性算法。</p>
<p>FLP说明在异步分布式系统中完全一致性是不可能的，但这是一个科学理论，应用到现实工程中，我们可以牺牲一些代价把不可能变成可能。实际运用在工程环境下，适当取舍这三者，一致性、可用性和分区容错性三者无法在分布式系统中被同时满足，并且最多只能满足其中两个。在区块链中常见的共识机制有：pow、pos、dpos、pbft等，这里简单介绍下两种最为常见的共识机制，一种是比特币的POW机制，另一种是未来以太坊采用的POS机制。</p>
<h3 id="4-1-1-PoW"><a href="#4-1-1-PoW" class="headerlink" title="4.1.1.PoW"></a>4.1.1.PoW</h3><p>POW（Proof of Work），工作量证明机制。我们最直观的理解就是，一份证明，这个证明确认你做了一定的工作量，类似于现代生活中一些检测考试，通过检测考试你就取得了一份证明，只不过这个证明是一个工作量的证明。 </p>
<p>工作量证明一开始是以工作量证明系统提出，这个概念来自Cynthia Dwork 和Moni Naor 1993年在学术论文中，是一种拒绝服务攻击和滥用服务的对策，要求发起者需要消耗一定量的计算机资源来进行计算。</p>
<p>工作量证明需要客户端做一个有难度的工作且得出一个结果，这个结果公布后，验证的一方需要很快能进行验证。这是不对等的。比如我们在一个字符串后加一个随机数（nonce），对这个字符串进行SHA256计算，然后得到的结果用16进制来表示，我们要求这个计算后的16进制表示的初始几位为：0000，那么才能算通过了验证。这种规则就需要计算机去不断的尝试，当然你可以记得其中一些，但是这个概率毕竟是很小的。正常情况下需要不断的输出计算尝试，直到出现正确的要求结果。</p>
<h3 id="4-1-2-PoS"><a href="#4-1-2-PoS" class="headerlink" title="4.1.2.PoS"></a>4.1.2.PoS</h3><p>POS权益证明（proof of stake）。这个解释为股权证明，2012年sunny king首次提出了POS概念，POS不需要大量算力来维持网络安全，通过钱包相应权重来获取奖励。所谓POS股权证明，通俗解释依据你持有的数字货币的数量和持有时间，根据这个两个要素发放一个利息，这里的银行存款的概念很相似。</p>
<p>Pos机制鼓励每个人去打开客户端钱包，根据上面对POS的解释，打开客户端钱包里才可能发现区块，那么就会获得利息，当然现在POS2.0的机制（下文会解释2.0）里，必须在线运行客户端钱包，才会按照你的数字货币持有量和运行客户端钱包时间分发利息，不停的有在线客户端钱包运行，这也就保障了整个系统网络的健壮和系统运行的保障了。昨天刚好有个朋友来问，在比特币系统中万一比特币挖完了，那么算力大大降低了，是不是就可能出现51%算力集中攻击。这个问题如果在POS机制中，就要求攻击者需要拥有51%的货币量，试想下，51%的货币量被控制，这个难度和这个环境的不可靠，应该也不会吸引到太多的人了。</p>
<p>POS的机制，那和比特币的POW机制相比，POS认为是一定程序上缩短了达成共识的时间，而且节省了资源，不像POW需要大量的算力。但是POS也有自己不可避免的缺点，单纯来说POW中，算力是基础，根据算力来决定你的话语权，但是控制算力目前来看，规模越大，越无法控制甚至垄断，相对来说比较公平。POS类似股票，持有货币量决定话语权，在一个公司内部，前期奋斗，后期可能作为决策者有大量的股份那就有决定权，数字货币环境不是单纯的一个公司那么简单，数字货币要求一个公正的环境，那么POS机制下，后来者明显处于了劣势。</p>
<p>在POS机制中，一旦发生了硬分叉，这个问题就相当复杂了，因为持有货币的人在两条链上都有相同数量的货币，新的分叉也能获得利益，那么这个分叉就很大程序会被默许，这样的分叉一旦出现就会不断出现，整个系统就处于崩溃，缺乏约束健壮性。</p>
<h2 id="4-2-密码学算法"><a href="#4-2-密码学算法" class="headerlink" title="4.2.密码学算法"></a>4.2.密码学算法</h2><p>区块链技术起源于比特币，在比特币出现后，人们发现比特币的底层技术架构，是结合之前技术后一种全新的架构，在这种架构下，通过密码学算法保证身份、签名、交易安全。数据通过共识机制写入，实现了数据不可篡改，透明可追溯。并且结合P2P网络架构，实现了一种去中介化的，每个节点保存一份数据，每个节点参与维护数据，且不依赖中心服务器的达成系统状态一致。</p>
<p>加密算法原理概述，数据加密：数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理，使其成为不可读的一段代码，通常称为“密文”，使其只能在输入相应的密钥之后才能显示出本来内容，通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密，即将该编码信息转化为其原来数据的过程。 那么根据数据加密的定义，我们会发现数据加密是需要一个解密过程中，那么有些算法在加密后变成密文，但是无法逆推的那种就不能被真正定义为加密算法。</p>
<p>区块链中涉及到的：私钥、公钥、钱包、助记词、hash算法、椭圆加密算法、SHA算法家族等都是以密码学算法为基础。</p>
<p>这里特别提及一下merkle tree（梅克尔树）。Merkle tree是数据结构中的一种树结构，可以是二叉树，也可以是多叉树，它和数据结构中树的特点几乎一致，和普通树不同的是：merkle tree上的叶节点存放hash计算后的hash值，非叶节点是其对应的子节点串联的字符串的hash值。假设hash0是上一层节点，hash0-0和发送0-1是下一层节点，那么hash0=hash0-0+hash0-1。中本聪在比特币系统中很巧妙地运用了merkle tree树，包括钱包SPV简单支付验证都以merkle tree为基础。以太坊也使用该模式来做区块链系统中的验证互联。Merkle tree以hash算法为基础，这里引入入一个hash root的概念，在区块链中有merkle hash root值。这个数据值就是拼凑在一起的hash值，通过hash root，我们可以通过事先获知hash root，然后结合hash list计算，逐步校验每一块的hash值并进行组合，组合值和hash root比较，一致就说明数据块是没有问题的，这种方式更好的运用在实际的网络数据传输中。</p>
<h2 id="4-3-P2P网络架构和分布式系统"><a href="#4-3-P2P网络架构和分布式系统" class="headerlink" title="4.3.P2P网络架构和分布式系统"></a>4.3.P2P网络架构和分布式系统</h2><p>P2P（peer to peer）：这个peer中文翻译就是对等、对等者、伙伴、对端的意思。所以P2P网络一般叫做对等网络，其确切定义：网络中每个参与节点共享节点所拥有的一部分计算能力、存储能力、网络连接能力，这些能力或者称为共享资源通过网络提供的服务和内容，可被对等节点直接访问，访问过程中不需要再经过中间实体，所以每个节点既是资源和服务的使用者、又是整个资源和服务的提供者。P2P网络中各个节点都是出于一个对等的地位，没有主、从的区分，联系实际环境，你目前在操作的一台电脑终端既可以作为服务器。又可以作为终端去获取对等节点的资源。整个网络中不存在中心节点，每个节点都可对任意对等节点做出响应，提供资源，包括计算资源、存储资源等。</p>
<p>在中心化拓扑中，网络主体由一个处于中心地位的索引目录服务器连接到目录服务器和各网络节点中。这种方式维护简单，资源发现率高，可实现复杂查询，但容易出现单点故障。 而分布式P2P网络拓扑包括：全分布式非结构化拓扑（Decentralized Unstructured Topology）；全分布式结构化拓扑（Decentralized Structured Topology，也称作DHT网络）。</p>
<p>全分布式非结构化拓扑的P2P网络是在重叠网络（Overlay Network）采用了随机图的组织方式，结点度数服从Power-law规律，从而能够较快发现目的结点，面对网络的动态变化体现了较好的容错能力，因此具有较好的可用性。同时可以支持复杂查询。 </p>
<p>全分布式结构化拓扑的P2P网络主要是采用分布式散列表（Distributed Hash Table, 简写成DHT）技术来组织网络中的结点。DHT是一个由广域范围大量结点共同维护的巨大散列表。散列表被分割成不连续的块，每个结点被分配给一个属于自己的散列块，并成为这个散列块的管理者。通过加密散列函数，一个对象的名字或关键词被映射为128位或160位的散列值。分布式散列表起源于SDDS（Scalable Distribute Data Structures）研究，Gribble等实现了一个高度可扩展，容错的SDDS集群。DHT类结构能够自适应结点的动态加入/退出，有着良好的可扩展性、鲁棒性、结点ID分配的均匀性和自组织能力。由于重叠网络采用了确定性拓扑结构，DHT可以提供精确的发现。只要目的结点存在于网络中DHT总能发现它，发现的准确性得到了保证。 </p>
<p>半分布式拓扑（Partially Decentralized Topology）吸取了中心化结构和全分布式非结构化拓扑的优点，选择性能较高（处理、存储、带宽等方面性能）的结点作为超级结点（英文表达为SuperNodes或者Hubs），在各个超级结点上存储了系统中其他部分结点的信息，发现算法仅在超级结点之间转发，超级结点再将查询请求转发给适当的叶子结点。半分布式结构也是一个层次式结构，超级结点之间构成一个高速转发层，超级结点和所负责的普通结点构成若干层次。 </p>
<p>在区块链技术模型中，一般都认可有一个网络层，在这一层，通过P2P组网机制，数据传播和验证机制来保证，所以P2P网络是区块链的基础，也是组成区块链技术的重要一环。区块链系统建立在IP通信协议和分布式网络的基础上，不依赖传统的电路交换，而是建立与网络通信之上，完全通过互联网交易信息。网络中的节点对等，没有中心化和层级概念，每个节点都承担维护网络路由、验证数据区块的功能。</p>
<h2 id="4-4-脚本"><a href="#4-4-脚本" class="headerlink" title="4.4.脚本"></a>4.4.脚本</h2><p>脚本是区块链上实现自动验证、自动执行合约的重要技术。每一笔交易的每一项输出严格意义上并不是指向一个地址，而是指向一个脚本。脚本类似一套规则，它约束着接收方怎样才能花掉这个输出上锁定的资产。</p>
<p>比特币的交易过程是非静态的，而是通过锁定脚本(locking script)与解锁脚本(unlocking script)实现动态的交易过程。</p>
<p>交易脚本的特性：</p>
<p>1.图灵非完备：比特币交易脚本故意使用一种图灵非完备的语言，没有循环或复杂流程控制，减少了灵活性，但极大的提高了安全性。</p>
<p>2.无状态验证：比特币交易脚本是无状态的，所以一个脚本能在任何系统上以相同的方式执行，如果你的系统验证了一个脚本，可以确信的是每一个比特币网络中的其他系统也将验证这个脚本，这意味着一个有效的交易对每个人而言都是有效的，而且每一个人都知道这一点。</p>
<p>3.基于堆栈的语言：堆栈语言极其简单，也增强了比特币的安全性。</p>
<p>解锁脚本是由签名与公钥组成，这就保证了必须拥有私钥的用户才能对某一笔交易进行解锁。                </p>
<p>锁定脚本是由一连串堆栈命令和公钥哈希组成，公钥哈希即RIPEMD160(SHA256(公钥))，大小20字节；由第二节的知识可知比特币地址实际是由该公钥Hash进行Base58check编码而来，所以必须拥有该地址的私钥才能将锁定脚本解锁。</p>
<h2 id="4-5-智能合约"><a href="#4-5-智能合约" class="headerlink" title="4.5.智能合约"></a>4.5.智能合约</h2><p>智能合约：智能合约是一种计算机协议，在以太坊中最重要的应用就是设计和部署只能合约。智能合约最早在1995年由计算机学者尼克·萨博（nick szabo）提出，当时他的理念是：智能合约是一套以数字形式定义的承诺（promises），包括合约参与方在内都可以在上面执行承诺的协议。这一套理论的目标是为了能够让智能合约满足普通合约的约束条件，最小化恶意或者意外发生的可能性，同时减小对信任中介的需求，这样一来也就能降低造成合约欺诈的损失和仲裁执行的成本以及其他一系列交易成本。Nick szabo希望借助计算机和密码学的约束，改进传统合同的制定和履行，将所有合约条款和约定执行置于计算机协议的掌控之下，但是在区块链技术未出现之前，这一套理论仅仅是理论，很少有真正在实践中尝试。</p>
<p>智能合约执行过程： </p>
<p>首先说下智能合同的四个核心概念： </p>
<p>数字身份，在区块链环境中不像现实社会每个人有身份证，每个企业有营业执照，那么区块链中的数字身份就类似你的个人信息，有个身份才能构建合约的主体。 </p>
<p>数字资产，这个不难理解，身份对应资产，智能合约中没有现实中心化机构来验证资产，那么你有房产要做抵押贷款，就要把这个房产作为数字资产登记到你的数字身份下并锁定。 </p>
<p>合约仲裁平台，这个就类似于现实中的仲裁机构（法庭），虽然区块链目的是一个去中心化的系统，但是在目前以太坊中的仲裁平台，个人理解为代码执行虚拟机类似以太坊中的EVM，区块链中的合约仲裁平台作用就是发现智能合同，并在参与合约双方的平台上安装这个合约，并执行这个智能合约。 </p>
<p>数字资产托管，智能合约用于保管数字资产。</p>
<p>开始执行后分为以下几步： </p>
<p>1.各个合约参与方共同来制定一份之前协商好的智能合约。 </p>
<p>1.1.每个参与方需要先加入区块链，生成一个数字身份，以及一对公私钥，公钥加工后成为数字身份地址，私钥就好好保存。 </p>
<p>1.2.有数字身份后参与合约者，互相商定好协议，明确权利和义务，当然这都是通过编程语言来实现，完成后各自用私钥签名（类似于在合同上的签字），然后分发到区块链网络中。 </p>
<p>2.双方约定合约后发布到区块链网络中，理论上每个节点都会收到，验证节点会把合约暂时保存起来，等下一个区块生成写入区块。 </p>
<p>3.通过区块链的共识机制，在一定时间内会有一些合约被一起打包，验证节点通过对区块链上HASH值的计算打包称为一个区块，并在网络中发布，其余节点收到区块验证HASH值，验证是一个多轮的环节，最终验证节点在规定时间内对新合约集合达成一致，形成区块（区块内有合约集合，对于每条合约都需要验证，验证通过的才能到区块中，验证主要是合约参与者的私钥和账户是否匹配）。 </p>
<p>4.智能合约自动执行 </p>
<p>4.1.智能合约会定时检查状态，遍历合约中的事务和触发条件，将满足的事务推送到验证队列中。 </p>
<p>4.2.待验证的事务发布上每个验证节点，首先对签名验证，保证事务的有效性，然后验证通过的进入共识集合，等到共识后，事务执行成功后通知用户。 </p>
<p>4.3.事务执行后，智能合约中的状态机制在判断合约状态、标记状态，如果合约执行完成则在区块中删除，如未完成等待下一轮处理。 </p>
<p>整个智能合同的执行是自动完成，不可篡改，完全透明化。</p>
<h1 id="5-区块链的研究方向"><a href="#5-区块链的研究方向" class="headerlink" title="5.区块链的研究方向"></a>5.区块链的研究方向</h1><h2 id="5-1-技术的发展方向"><a href="#5-1-技术的发展方向" class="headerlink" title="5.1.技术的发展方向"></a>5.1.技术的发展方向</h2><p>首先来说一下区块链技术的限制，只用通过解决区块链中的诸多限制，区块链的技术方面才能获得更多的发展。<br>以下是区块链目前的技术限制：<br>（1）性能限制<br>就像刚才对比云计算，区块链把多个节点变成同一个节点来用，效率会很低，任何一个交易需要拿到所有的节点上面去进行共识，所以性能就比较差，就会有性能的限制。</p>
<p>（2）扩展性限制<br>导致扩展性限制的原因与导致性能限制的原因类似。</p>
<p>（3）易用性限制<br>很多区块链的平台不太好用，需要非常高的技术门槛，导致其易用性受到很大限制。</p>
<p>（4）兼容性、跨链互联限制<br>区块链现在有很多不同的链，它们之间没有办法跨链互联，导致兼容性比较差。</p>
<p>（5）存储限制<br>区块链节点的数据，每时每刻都在增加，所以有存储的限制。</p>
<p>（6）严格数学证明<br>很多区块链的白皮书没有提供数学证明，主要是在共识算法上，没有给出一个非常严格的数学证明保证它的共识算法能够达到一致，能够比较安全，能够在有限的时间内达成共识。</p>
<p>（7）缺乏形式化证明<br>很多智能合约实际上是没有经过形式化的验证，当部署在区块链上后，因为不能修改，如果有BUG很容易被黑客利用。比如The DAO项目，就是因为它的智能合约有缺陷，BUG被黑客利用，最后只能硬分杈。而形式化证明可以避免这些问题。</p>
<p>（8）同步限制<br>当区块越来越多，网络上节点越来越多，怎么能够快速的同步，这也是一个问题。</p>
<p>（9）治理限制<br>如何在区块链的网络上面采用一种比较好的治理机制，使得区块链能够发展它的一些参数，都需要根据不同的情况来做一些调整。</p>
<p>（10）软件升级限制<br>软件升级一般都会形成分叉，软分叉或者硬分叉，硬分叉的影响更大。</p>
<h2 id="5-2-应用的发展方向"><a href="#5-2-应用的发展方向" class="headerlink" title="5.2.应用的发展方向"></a>5.2.应用的发展方向</h2><p>（1）操作系统方向<br>区块链操作系统不是简单的给这个操作系统加上一个区块链，或者区块链上面加一个操作系统。它指的是给DApp，去中心化的开发运行的一个操作系统。为DApp开发运行所需要的一些功能和服务提供类似像win操作系统，安卓操作系统的功能。这个功能包括用户身份的认证、授权、数据库、调度、云存储、异步通信、水平拓展、并行等功能。</p>
<p>（2）中间件方向<br>它的目标实际上是为DApp提供底层的服务，并且支持不同的底层链。例如最近比较火的Ontology本体网络，它实际上是一个多链多系统融合的链群结构，也提供跨链跨系统的交互协议，分布式ID认证。这种交换和协同的定位来自于一个中间件，类似的项目还有ArcBlock，也是提供中心化应用的生态系统，通过不同的适配器来适配不同的底层区块链。</p>
<p>（3）企业级区块链<br>在企业级区块链这一块，有构建去中心化云计算的Dfinity。它的目标是在P2P网络上面构建一个稳定的虚拟区块链计算机，上面可以安装运行软件。它的共识机制包括随机灯塔，与登记用户联合生成可靠的随机数，采用BLS门限签名算法。另外简单的说一下超级账本Fabric。Fabric在企业级区块链这一块基本属于垄断地位，它的特点就是从分布式账本的角度，不发币，没有币，是一个许可链，主要通过CA证书验证身份来授权。另外一个特点就是它实际上是基于通道的多链网络结构，每一个通道相当于一条区块链，它的智能合约叫ChainCode，主要是在Docker容器上来运行。共识算法现在采用Kafka排序，不支持拜占庭容错，它的前提是假设这个环境是安全的，没有故意捣乱的节点。Fabric的优势就是提供了交易的机密性，权限管理和控制。它的架构设计里面分离了共识和记帐的职能，节点数可以动态伸缩，也可以升级智能合约，它的成员服务是高可用的。目前Fabric在企业级区块链里占据主流的地位。</p>
<p>（4）科研方向<br>以这个方向以去年比较火的项目Cardano为例，它是学术范区块链，跟传统的区块链不一样，传统的区块链是弄一个白皮书就开始进行了，而它是一些科学家在做，比较严谨，它们的文档都要同行评审。它解决区块链的三个问题，分别是扩展性，互操作性和可持续性。它采用一些可证明的特殊的共识算法，就是数学的严格的证明，比较安全。它的网络有自己的协议，有数据的扩展，互操作性，它有自己的代码语言跟智能合约的语言。</p>
  
	</div>
		<footer class="article-footer clearfix">
<div class="article-catetags">


  <div class="article-tags">
  
  <span></span> <a href="/tags/周报/">周报</a><a href="/tags/学习报告/">学习报告</a><a href="/tags/卢家豪/">卢家豪</a>
  </div>

</div>



	<div class="article-share" id="share">
	
	  <div data-url="http://b3434lockchain.gitee.io/2018/10/14/lujiahao/lujiahao2/" data-title="卢家豪 - 区块链概论学习 | B3434lockchain" data-tsina="" class="share clearfix">
	  </div>
	
	</div>


</footer>

   	       
	</article>
	
<nav class="article-nav clearfix">
 
 <div class="prev" >
 <a href="/2018/10/14/fenghuawen/fenghuawen2/" title="冯华文 - 区块链学习报告">
  <strong>上一篇：</strong><br/>
  <span>
  冯华文 - 区块链学习报告</span>
</a>
</div>


<div class="next">
<a href="/2018/10/14/susijie/susijie2/"  title="苏思捷 - 区块链学习报告">
 <strong>下一篇：</strong><br/> 
 <span>苏思捷 - 区块链学习报告
</span>
</a>
</div>

</nav>

	



</div>  
      <div class="openaside"><a class="navbutton" href="#" title="Show Sidebar"></a></div>

  <div id="toc" class="toc-aside">
  <strong class="toc-title">Contents</strong>
 
 <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#1-什么是区块链？"><span class="toc-number">1.</span> <span class="toc-text">1.什么是区块链？</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#1-1-区块链的本质"><span class="toc-number">1.1.</span> <span class="toc-text">1.1.区块链的本质</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-2-区块链的特点"><span class="toc-number">1.2.</span> <span class="toc-text">1.2.区块链的特点</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#1-2-1-区块链的技术特点"><span class="toc-number">1.2.1.</span> <span class="toc-text">1.2.1.区块链的技术特点</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#1-2-2-区块链的开发特点"><span class="toc-number">1.2.2.</span> <span class="toc-text">1.2.2.区块链的开发特点</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-3-区块"><span class="toc-number">1.3.</span> <span class="toc-text">1.3.区块</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-4-哈希的不可修改性"><span class="toc-number">1.4.</span> <span class="toc-text">1.4.哈希的不可修改性</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-5-采矿"><span class="toc-number">1.5.</span> <span class="toc-text">1.5.采矿</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-6-区块链的分支"><span class="toc-number">1.6.</span> <span class="toc-text">1.6.区块链的分支</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-7-总结"><span class="toc-number">1.7.</span> <span class="toc-text">1.7.总结</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#2-区块链的发展历史"><span class="toc-number">2.</span> <span class="toc-text">2.区块链的发展历史</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#2-1-比特币"><span class="toc-number">2.1.</span> <span class="toc-text">2.1.比特币</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-1-比特币简介"><span class="toc-number">2.1.1.</span> <span class="toc-text">2.1.1.比特币简介</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-2-比特币的产生"><span class="toc-number">2.1.2.</span> <span class="toc-text">2.1.2.比特币的产生</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-3-比特币白皮书"><span class="toc-number">2.1.3.</span> <span class="toc-text">2.1.3.比特币白皮书</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-4-比特币的现状"><span class="toc-number">2.1.4.</span> <span class="toc-text">2.1.4.比特币的现状</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-2-以太坊"><span class="toc-number">2.2.</span> <span class="toc-text">2.2.以太坊</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-1-以太坊简介"><span class="toc-number">2.2.1.</span> <span class="toc-text">2.2.1.以太坊简介</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-2-特点"><span class="toc-number">2.2.2.</span> <span class="toc-text">2.2.2.特点</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-3-以太坊的协议设计"><span class="toc-number">2.2.3.</span> <span class="toc-text">2.2.3.以太坊的协议设计</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-3-1-核心概念"><span class="toc-number">2.2.3.1.</span> <span class="toc-text">2.2.3.1.核心概念</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-3-2-一致性"><span class="toc-number">2.2.3.2.</span> <span class="toc-text">2.2.3.2.一致性</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-3-3-降低攻击"><span class="toc-number">2.2.3.3.</span> <span class="toc-text">2.2.3.3.降低攻击</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-3-4-提高扩展性"><span class="toc-number">2.2.3.4.</span> <span class="toc-text">2.2.3.4.提高扩展性</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-4-以太坊的应用实现"><span class="toc-number">2.2.4.</span> <span class="toc-text">2.2.4.以太坊的应用实现</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-4-1-区块链程序应用"><span class="toc-number">2.2.4.1.</span> <span class="toc-text">2.2.4.1.区块链程序应用</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-4-2-客户端软件"><span class="toc-number">2.2.4.2.</span> <span class="toc-text">2.2.4.2.客户端软件</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-2-4-3-认许制记账"><span class="toc-number">2.2.4.3.</span> <span class="toc-text">2.2.4.3.认许制记账</span></a></li></ol></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-3-超级账本"><span class="toc-number">2.3.</span> <span class="toc-text">2.3.超级账本</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-1-超级账本简介"><span class="toc-number">2.3.1.</span> <span class="toc-text">2.3.1.超级账本简介</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-2-组成"><span class="toc-number">2.3.2.</span> <span class="toc-text">2.3.2.组成</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-1-Fabric"><span class="toc-number">2.3.2.1.</span> <span class="toc-text">2.3.2.1.Fabric</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-2-Sawtooth"><span class="toc-number">2.3.2.2.</span> <span class="toc-text">2.3.2.2.Sawtooth</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-3-Iroha"><span class="toc-number">2.3.2.3.</span> <span class="toc-text">2.3.2.3.Iroha</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-4-Blochchain-Explorer"><span class="toc-number">2.3.2.4.</span> <span class="toc-text">2.3.2.4.Blochchain Explorer</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-5-Cello"><span class="toc-number">2.3.2.5.</span> <span class="toc-text">2.3.2.5.Cello</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-6-Indy"><span class="toc-number">2.3.2.6.</span> <span class="toc-text">2.3.2.6.Indy</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-7-Composer"><span class="toc-number">2.3.2.7.</span> <span class="toc-text">2.3.2.7.Composer</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-2-8-Burrow"><span class="toc-number">2.3.2.8.</span> <span class="toc-text">2.3.2.8.Burrow</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-3-架构设计"><span class="toc-number">2.3.3.</span> <span class="toc-text">2.3.3.架构设计</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-4-应用场景"><span class="toc-number">2.3.4.</span> <span class="toc-text">2.3.4.应用场景</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-5-开发者开发"><span class="toc-number">2.3.5.</span> <span class="toc-text">2.3.5.开发者开发</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-5-1-智能合约开发"><span class="toc-number">2.3.5.1.</span> <span class="toc-text">2.3.5.1.智能合约开发</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#2-3-5-2-应用程序开发"><span class="toc-number">2.3.5.2.</span> <span class="toc-text">2.3.5.2.应用程序开发</span></a></li></ol></li></ol></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#3-区块链有什么项目"><span class="toc-number">3.</span> <span class="toc-text">3.区块链有什么项目</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#3-1-数字资产"><span class="toc-number">3.1.</span> <span class="toc-text">3.1.数字资产</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-2-智能合约平台以太坊"><span class="toc-number">3.2.</span> <span class="toc-text">3.2.智能合约平台以太坊</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-3-全球支付与结算"><span class="toc-number">3.3.</span> <span class="toc-text">3.3.全球支付与结算</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-4-平台类应用项目"><span class="toc-number">3.4.</span> <span class="toc-text">3.4.平台类应用项目</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#4-区块链使用什么技术"><span class="toc-number">4.</span> <span class="toc-text">4.区块链使用什么技术</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#4-1-共识机制"><span class="toc-number">4.1.</span> <span class="toc-text">4.1.共识机制</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#4-1-1-PoW"><span class="toc-number">4.1.1.</span> <span class="toc-text">4.1.1.PoW</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#4-1-2-PoS"><span class="toc-number">4.1.2.</span> <span class="toc-text">4.1.2.PoS</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-2-密码学算法"><span class="toc-number">4.2.</span> <span class="toc-text">4.2.密码学算法</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-3-P2P网络架构和分布式系统"><span class="toc-number">4.3.</span> <span class="toc-text">4.3.P2P网络架构和分布式系统</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-4-脚本"><span class="toc-number">4.4.</span> <span class="toc-text">4.4.脚本</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-5-智能合约"><span class="toc-number">4.5.</span> <span class="toc-text">4.5.智能合约</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#5-区块链的研究方向"><span class="toc-number">5.</span> <span class="toc-text">5.区块链的研究方向</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#5-1-技术的发展方向"><span class="toc-number">5.1.</span> <span class="toc-text">5.1.技术的发展方向</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#5-2-应用的发展方向"><span class="toc-number">5.2.</span> <span class="toc-text">5.2.应用的发展方向</span></a></li></ol></li></ol>
 
  </div>

<div id="asidepart">
<div class="closeaside"><a class="closebutton" href="#" title="Hide Sidebar"></a></div>
<aside class="clearfix">

  

  
<div class="tagslist">
	<p class="asidetitle">Tags</p>
		<ul class="clearfix">
		
			
				<li><a href="/tags/周报/" title="周报">周报<sup>23</sup></a></li>
			
		
			
				<li><a href="/tags/谭俊熙/" title="谭俊熙">谭俊熙<sup>11</sup></a></li>
			
		
			
				<li><a href="/tags/苏思捷/" title="苏思捷">苏思捷<sup>5</sup></a></li>
			
		
			
				<li><a href="/tags/学习报告/" title="学习报告">学习报告<sup>5</sup></a></li>
			
		
			
				<li><a href="/tags/卢家豪/" title="卢家豪">卢家豪<sup>5</sup></a></li>
			
		
			
				<li><a href="/tags/报告/" title="报告">报告<sup>5</sup></a></li>
			
		
			
				<li><a href="/tags/苏佳鑫/" title="苏佳鑫">苏佳鑫<sup>4</sup></a></li>
			
		
			
				<li><a href="/tags/冯华文/" title="冯华文">冯华文<sup>4</sup></a></li>
			
		
			
				<li><a href="/tags/周报反馈/" title="周报反馈">周报反馈<sup>2</sup></a></li>
			
		
			
				<li><a href="/tags/吴朝捷/" title="吴朝捷">吴朝捷<sup>2</sup></a></li>
			
		
			
				<li><a href="/tags/黎宁/" title="黎宁">黎宁<sup>1</sup></a></li>
			
		
			
				<li><a href="/tags/笔记/" title="笔记">笔记<sup>1</sup></a></li>
			
		
		</ul>
</div>


</aside>
</div>
    </div>
    <footer><div id="footer" >
	
	
	<div class="social-font" class="clearfix">
		
		
		
		
		
		
		
		
		
		
	</div>
			
		

		<p class="copyright">
		
		</p>
</div>
</footer>
    <script src="/js/jquery-2.0.3.min.js"></script>
<script src="/js/jquery.imagesloaded.min.js"></script>
<script src="/js/gallery.js"></script>
<script src="/js/jquery.qrcode-0.12.0.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){ 
  $('.navbar').click(function(){
    $('header nav').toggleClass('shownav');
  });
  var myWidth = 0;
  function getSize(){
    if( typeof( window.innerWidth ) == 'number' ) {
      myWidth = window.innerWidth;
    } else if( document.documentElement && document.documentElement.clientWidth) {
      myWidth = document.documentElement.clientWidth;
    };
  };
  var m = $('#main'),
      a = $('#asidepart'),
      c = $('.closeaside'),
      o = $('.openaside');
  c.click(function(){
    a.addClass('fadeOut').css('display', 'none');
    o.css('display', 'block').addClass('fadeIn');
    m.addClass('moveMain');
  });
  o.click(function(){
    o.css('display', 'none').removeClass('beforeFadeIn');
    a.css('display', 'block').removeClass('fadeOut').addClass('fadeIn');      
    m.removeClass('moveMain');
  });
  $(window).scroll(function(){
    o.css("top",Math.max(80,260-$(this).scrollTop()));
  });
  
  $(window).resize(function(){
    getSize(); 
    if (myWidth >= 1024) {
      $('header nav').removeClass('shownav');
    }else{
      m.removeClass('moveMain');
      a.css('display', 'block').removeClass('fadeOut');
      o.css('display', 'none');
      
      $('#toc.toc-aside').css('display', 'none');
        
    }
  });
});
</script>

<script type="text/javascript">
$(document).ready(function(){ 
  var ai = $('.article-content>iframe'),
      ae = $('.article-content>embed'),
      t  = $('#toc'),
      ta = $('#toc.toc-aside'),
      o  = $('.openaside'),
      c  = $('.closeaside');
  if(ai.length>0){
    ai.wrap('<div class="video-container" />');
  };
  if(ae.length>0){
   ae.wrap('<div class="video-container" />');
  };
  c.click(function(){
    ta.css('display', 'block').addClass('fadeIn');
  });
  o.click(function(){
    ta.css('display', 'none');
  });
  $(window).scroll(function(){
    ta.css("top",Math.max(140,320-$(this).scrollTop()));
  });
});
</script>


<script type="text/javascript">
$(document).ready(function(){ 
  var $this = $('.share'),
      url = $this.attr('data-url'),
      encodedUrl = encodeURIComponent(url),
      title = $this.attr('data-title'),
      tsina = $this.attr('data-tsina'),
      description = $this.attr('description');
  var html = [
  '<div class="hoverqrcode clearfix"></div>',
  '<a class="overlay" id="qrcode"></a>',
  '<a href="https://www.facebook.com/sharer.php?u=' + encodedUrl + '" class="article-share-facebook" target="_blank" title="Facebook"></a>',
  '<a href="https://twitter.com/intent/tweet?url=' + encodedUrl + '" class="article-share-twitter" target="_blank" title="Twitter"></a>',
  '<a href="#qrcode" class="article-share-qrcode" title="微信"></a>',
  '<a href="http://widget.renren.com/dialog/share?resourceUrl=' + encodedUrl + '&srcUrl=' + encodedUrl + '&title=' + title +'" class="article-share-renren" target="_blank" title="人人"></a>',
  '<a href="http://service.weibo.com/share/share.php?title='+title+'&url='+encodedUrl +'&ralateUid='+ tsina +'&searchPic=true&style=number' +'" class="article-share-weibo" target="_blank" title="微博"></a>',
  '<span title="Share to"></span>'
  ].join('');
  $this.append(html);

  $('.hoverqrcode').hide();

  var myWidth = 0;
  function updatehoverqrcode(){
    if( typeof( window.innerWidth ) == 'number' ) {
      myWidth = window.innerWidth;
    } else if( document.documentElement && document.documentElement.clientWidth) {
      myWidth = document.documentElement.clientWidth;
    };
    var qrsize = myWidth > 1024 ? 200:100;
    var options = {render: 'image', size: qrsize, fill: '#2ca6cb', text: url, radius: 0.5, quiet: 1};
    var p = $('.article-share-qrcode').position();
    $('.hoverqrcode').empty().css('width', qrsize).css('height', qrsize)
                          .css('left', p.left-qrsize/2+20).css('top', p.top-qrsize-10)
                          .qrcode(options);
  };
  $(window).resize(function(){
    $('.hoverqrcode').hide();
  });
  $('.article-share-qrcode').click(function(){
    updatehoverqrcode();
    $('.hoverqrcode').toggle();
  });
  $('.article-share-qrcode').hover(function(){}, function(){
      $('.hoverqrcode').hide();
  });
});   
</script>











<link rel="stylesheet" href="/fancybox/jquery.fancybox.css" media="screen" type="text/css">
<script src="/fancybox/jquery.fancybox.pack.js"></script>
<script type="text/javascript">
$(document).ready(function(){ 
  $('.article-content').each(function(i){
    $(this).find('img').each(function(){
      if ($(this).parent().hasClass('fancybox')) return;
      var alt = this.alt;
      if (alt) $(this).after('<span class="caption">' + alt + '</span>');
      $(this).wrap('<a href="' + this.src + '" title="' + alt + '" class="fancybox"></a>');
    });
    $(this).find('.fancybox').each(function(){
      $(this).attr('rel', 'article' + i);
    });
  });
  if($.fancybox){
    $('.fancybox').fancybox();
  }
}); 
</script>



<!-- Analytics Begin -->





<!-- Analytics End -->

<!-- Totop Begin -->

	<div id="totop">
	<a title="Back to Top"><img src="/img/scrollup.png"/></a>
	</div>
	<script src="/js/totop.js"></script>

<!-- Totop End -->

<!-- MathJax Begin -->
<!-- mathjax config similar to math.stackexchange -->


<!-- MathJax End -->

<!-- Tiny_search Begin -->

<!-- Tiny_search End -->

  </body>
</html>
